home *** CD-ROM | disk | FTP | other *** search
Text File | 1994-02-11 | 4.6 KB | 115 lines | [TEXT/MWPS] |
- Metrowerks 68K Pascal release notes
- ===================================
-
- Version: 1.0d5
- Date: February 9, 1994
- Author: Marcel Achim
-
-
- If you encounter undefined symbols during your link, be sure to add
- Pascal/RT.lib to your project.
-
-
- - Accelerated symbol tables manipulations.
- - standard memory management functions fixed.
- - variant record tags are aligned as in MPW.
- - variant record size is ajusted accordingly.
- - variant record selector accepts ranges, ie. id1 .. id2 : (..)
- - procedure calls w/o () are now checked for missing formal parameters.
- - positionning of errors in source file is fixed.
- - find definition works.
- - functions' popup fixed.
- - reading and writing of packed arrays is fixed for files and SIOUX.
- - external C variables must be declared accroding to the following syntax :
- C; id {',' id} : Type ; ['FAR' | 'EXTERNAL']
- the C directive comes ahead of variable declarations and lasts until the Type.
- - far data is activated. Declaration syntax for variables is :
- id {',' id} : Type ';' ['FAR' | 'EXTERNAL'] ';'
- these directives are valide only at the unit/program level.
- - Standard op BSET, BCLR, BTST fixed.
- - Write of boolean values allowed.
- - compatibility between ranges of integer and longints.
- - multiple references between variables in nested functions bad codegen.
- - inner functions have an extra number to make them uniquely defined.
- - linker error messages are now displayed.
- - output of boolean values to file and windows.
- - redundant loads skipped in fp by-value passing.
- - IOResult returns and integer now.
- - mark and release accept any pointer type now.
- - the C compiler's assembler is integrated, the function's syntax is :
- ProcedureHeading 'ASM' ';' { ConstDecl VarDecl TypeDecl }
- 'BEGIN' AssemblerStatements 'END' ';'
- example :
- FUNCTION foo ( VAR x : INTEGER ) : INTEGER; ASM;
- BEGIN
- movea.l x,a0
- ...
- move d0,8(a7)
- rts
- END;
-
- - ranges take the smallest possible size.
- - by-value floating point values are passed as in MPW Pascal.
- - some fixes to the preprocessor (no more infinite loop, unrecognized $I directive).
- - function results used in castings and writeln (occured with parameterless functions).
- - ORD4 behaviour similar to ORD's.
- - ABS accepts ranges now.
- - casting of integers to packed arrays.
- - structured function result followed by selector as l-values.
- - assignment of set constructors to small sets.
-
- - linkage conventions match MPW Pascal's except for FP.
- - function return values cannot be assigned in an inner scope.
- - the binary symbol tables are now compressed, so you have to patch
- Pascal/RT.lib and Pascal/MacOS.lib
- - PasLibIntf.p and IntEnv.p are components of Pascal/RT.lib
-
- Restrictions & wildlife (these features will disappear in the next release)
- - exit not permitted through multiple scopes.
- - no runtime range or overflow checking.
- - all logical operations are short-circuit.
- - see Preprocessor below.
- - FPU code generation for runtime math operations is hosed, so don't
- use the mc68881 switch.
- - writeln(boolean) not supported.
- - LONGINT not support as variant case tag type.
- - irrelevant warning messages with extended error checking.
- - constant string indexing is not supported (ie. '0123456789ABCDEF'[idx] )
- - NEW allocates memory for the biggest case possible.
- - ** operator not supported yet.
-
- - Find Reference goes directly to ThinkReference™.
-
- Extensions
- - QuickDraw global variables (thePort, ...) are now contained in a record variable
- named qd. (See Sillyballs.p or TubeTest.p, to see its usage).
- - Procedural types are supported, see the documentation ...
- - Scope searching rules can be changed by using unitname.objname syntax. This option
- is controled by the 'Language''s qualident switch.
- - Objects can be propagated through USES clauses with the Uses propagation switch.
- - Directives in the prefix file must use the preprocessor's syntax.
- - Screen oriented I/O are triggered by the first I/O call made without a file descriptor.
-
- Preprocessor
- - conditional compilation is supported.
- - the following options are not supported, but will be
- $MC680x0, $MC6888x, $OV, $R, $SC, $W, $D, $Z,
- - the following options are not supported, and won't be
- $B, $C, $J, $H, $N, $A1, $A5, $E, $K, $P, $PUSH, $POP
-
- Interfaces
- - The interfaces provided with the compiler are only there for reference purpose,
- the compiler uses binary tables in MacOS.lib (which must be added to your project file).
-
- Debugger support
- - standard .SYM generation, works fine with Jasik's the Debugger™, except for
- sets which are not MPW. In some cases, code of nested routines is badly displayed.
-
- Examples
- - Have fun.
-
- Marcel Achim
- Metrowerks, Inc.
- Internet: achim@metrowerks.ca
-
-